/*
* Copyright (c) 2004-2010, P. Simon Tuffs (simon@simontuffs.com)
* All rights reserved.
*
* See the full license at http://one-jar.sourceforge.net/one-jar-license.html
* This license is also included in the distributions of this software
* under doc/one-jar-license.txt
*/
package jogamp.test;
import java.lang.reflect.Method;
import junit.framework.AssertionFailedError;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;
import com.simontuffs.onejar.Boot;
import com.simontuffs.onejar.JarClassLoader;
import com.simontuffs.onejar.test.Invoker;
public class Jogamp01Suite {
protected static Object test;
protected static int failures = 0;
public static final String MAIN_CLASS = "jogamp.test.Test";
public static void main(String args[]) {
new TestSuite(Jogamp01Suite.class).run(new TestResult());
}
public static Test suite() throws Exception {
if (test == null) {
// Load Test object from the jar.
JarClassLoader loader = new JarClassLoader("");
Boot.setClassLoader(loader);
// loader.setVerbose(true);
loader.load(null);
test = loader.loadClass(MAIN_CLASS).newInstance();
}
TestSuite top = new TestSuite();
TestSuite suite = new TestSuite(MAIN_CLASS);
top.addTest(suite);
Method methods[] = test.getClass().getMethods();
for (final Method method: methods) {
if (method.getName().startsWith("test")) {
System.out.println("" + method);
suite.addTest(new TestCase() {
{
setName(method.getName());
}
@Override
public void run(TestResult result) {
// TODO Auto-generated method stub
result.startTest(this);
try {
Invoker.invoke(test, method.getName());
} catch (Exception x) {
x.printStackTrace();
result.addFailure(this, new AssertionFailedError(x.toString()));
}
result.endTest(this);
}
});
}
}
return suite;
}
}